home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -serious- / programming / other / dopus412-gpl / program / dopusstructures.h < prev    next >
C/C++ Source or Header  |  2000-02-28  |  8KB  |  422 lines

  1. /*
  2.  
  3. Directory Opus 4
  4. Original GPL release version 4.12
  5. Copyright 1993-2000 Jonathan Potter
  6.  
  7. This program is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU General Public License
  9. as published by the Free Software Foundation; either version 2
  10. of the License, or (at your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20.  
  21. All users of Directory Opus 4 (including versions distributed
  22. under the GPL) are entitled to upgrade to the latest version of
  23. Directory Opus version 5 at a reduced price. Please see
  24. http://www.gpsoft.com.au for more information.
  25.  
  26. The release of Directory Opus 4 under the GPL in NO WAY affects
  27. the existing commercial status of Directory Opus 5.
  28.  
  29. */
  30.  
  31. #ifndef DOPUS_STRUCTURES
  32. #define DOPUS_STRUCTURES
  33.  
  34. struct CustEntryMessage {
  35.     struct Message cem_Message;
  36.     int cem_Action;
  37.     char *cem_Data;
  38.     int cem_UserData;
  39. };
  40.  
  41. struct NetworkStuff {
  42.     char *owner;
  43.     char *group;
  44.     char net_protbuf[10];
  45. };
  46.  
  47. struct Directory {
  48.     struct Directory *last,*next;
  49.     char name[32];
  50.     int type;
  51.     int size;
  52.     int subtype;
  53.     int protection;
  54.     char *comment;
  55.     char *dispstr;
  56.     char protbuf[12],datebuf[20];
  57.     int selected;
  58.     char *description;
  59.     int userdata,userdata2;
  60.     struct DateStamp date;
  61.     UWORD owner_id,group_id;
  62.     struct NetworkStuff *network;
  63. };
  64.  
  65. struct RecursiveDirectory {
  66.     struct RecursiveDirectory *next;
  67.     char name[32];
  68.     struct DateStamp date;
  69.     struct RecursiveDirectory *child;
  70. };
  71.  
  72. struct Help {
  73.     struct Help *next;
  74.     char *lookup,*message;
  75. };
  76.  
  77. struct ProcessStart {
  78.     BPTR ps_NextSeg;
  79.     UWORD ps_JMP;
  80.     void *ps_EntryPoint;
  81. };
  82.  
  83. struct dopusfuncpar {
  84.     int which,stack;
  85.     unsigned char key,qual;
  86.     char type,pri,delay;
  87. };
  88.  
  89. struct dopusfunction {
  90.     char name[16];
  91.     int which,stack;
  92.     unsigned char key,qual;
  93.     char type,pri,delay;
  94.     char fpen,bpen;
  95.     char pad;
  96.     char *function;
  97. };
  98.  
  99. struct newdopusfunction {
  100.     char *name;
  101.     int pad3[3];
  102.     int which,stack;
  103.     unsigned char key,qual;
  104.     char type,pri,delay;
  105.     char fpen,bpen;
  106.     char pad;
  107.     char *function;
  108. };
  109.  
  110. struct dopusfiletype {
  111.     struct dopusfiletype *next;
  112.     char type[32];
  113.     char typeid[8];
  114.     char actionstring[FILETYPE_FUNCNUM][40];
  115.     int which[FILETYPE_FUNCNUM],stack[FILETYPE_FUNCNUM];
  116.     char pri[FILETYPE_FUNCNUM],delay[FILETYPE_FUNCNUM];
  117.     unsigned char *recognition;
  118.     char *function[FILETYPE_FUNCNUM];
  119.     char *iconpath;
  120. };
  121.  
  122. struct dopusgadgetbanks {
  123.     struct newdopusfunction gadgets[GADCOUNT];
  124.     struct dopusgadgetbanks *next;
  125. };
  126.  
  127. struct dopushotkey {
  128.     struct dopushotkey *next;
  129.     UWORD code,qualifier;
  130.     char name[40];
  131.     struct dopusfunction func;
  132. };
  133.  
  134. struct Config {
  135.     USHORT version;
  136.     USHORT magic;
  137.  
  138.     char copyflags,deleteflags,errorflags,generalflags,iconflags;
  139.     char existflags,sepflags,sortflags,dynamicflags;
  140.     char sortmethod[2];
  141.  
  142.     char hotkeyflags;
  143.  
  144.     char menutit[5][16];
  145.     struct newdopusfunction menu[MENUCOUNT];
  146.  
  147.     struct dopusfunction drive[DRIVECOUNT];
  148.  
  149.     char outputcmd[80],output[80];
  150.     int gadgetrows;
  151.  
  152.     char separatemethod[2];
  153.  
  154.     char language[30];
  155.  
  156.     char displaypos[2][16];
  157.     char displaylength[2][16];
  158.  
  159.     char pubscreen_name[80];
  160.  
  161.     USHORT Palette[16];
  162.     char gadgettopcol,gadgetbotcol;
  163.     char statusfg,statusbg;
  164.     char filesfg,filesbg,filesselfg,filesselbg;
  165.     char dirsfg,dirsbg,dirsselfg,dirsselbg;
  166.     char clockfg,clockbg;
  167.     char requestfg,requestbg;
  168.     char disknamefg,disknamebg,disknameselfg,disknameselbg;
  169.     char slidercol,arrowfg,arrowbg,littlegadfg,littlegadbg;
  170.  
  171.     char pad3;
  172.  
  173.     char scrdepth;
  174.     char screenflags;
  175.     int screenmode;
  176.     int scrw,scrh;
  177.     char fontbuf[40];
  178.     char arrowpos[3];
  179.  
  180.     char pad4;
  181.  
  182.     char startupscript[80];
  183.     char dirflags;
  184.     unsigned char bufcount;
  185.  
  186.     char pad5[2];
  187.  
  188.     char autodirs[2][30];
  189.     char pad5a[80];
  190.     UWORD hotkeycode,hotkeyqual;
  191.  
  192.     char toolicon[80],projecticon[80],drawericon[80],defaulttool[80];
  193.     char priority;
  194.     char showdelay,viewbits,fadetime,tabsize;
  195.  
  196.     char pad7[2];
  197.  
  198.     char hiddenbit;
  199.     char showpat[40],hidepat[40];
  200.     char showpatparsed[40],hidepatparsed[40];
  201.     char icontype,scrclktype,showfree;
  202.  
  203.     char pad8;
  204.  
  205.     short iconx,icony;
  206.     short wbwinx,wbwiny;
  207.  
  208.     char configreturnscript[80];
  209.  
  210.     char fontsizes[NUMFONTS];
  211.     char fontbufs[NUMFONTS][40];
  212.  
  213.     char uniconscript[80];
  214.     char sliderbgcol;
  215.  
  216.     char pad_foo;
  217.  
  218.     short scr_winx,scr_winy;
  219.     short scr_winw,scr_winh;
  220.  
  221.     char morepadding[231];
  222.  
  223.     char old_displaypos[2][8];
  224.     char dateformat,addiconflags;
  225.     char stringfgcol,stringbgcol;
  226.     char namelength[2];
  227.     char sliderwidth,sliderheight;
  228.     char formatflags;
  229.     short iconbutx,iconbuty;
  230.     char stringheight;
  231.     char stringselfgcol,stringselbgcol;
  232.     char generalscreenflags;
  233.  
  234.     struct Rectangle scrollborders[2];
  235.  
  236.     char old_displaylength[2][8];
  237.  
  238.     char shellstartup[30];
  239.  
  240.     char windowdelta;
  241.  
  242.     char pad9a[397];
  243.  
  244.     int loadexternal;
  245.  
  246.     ULONG new_palette[48];
  247.  
  248.     char arrowsize[3];
  249.  
  250.     char slider_pos;
  251.  
  252.     short config_x;
  253.     short config_y;
  254.  
  255.     char pad10[1414];
  256. };
  257.  
  258. struct recpath {
  259.     char *path;
  260.     struct recpath *next;
  261. };
  262.  
  263. struct dopustaskmsg {
  264.     struct Message msg;
  265.     int command;
  266.     int total,value;
  267.     int flag;
  268.     char *data;
  269. };
  270.  
  271. struct dopusconfigmsg {
  272.     struct Message msg;
  273.     int command;
  274.     char *buffer;
  275. };
  276.  
  277. struct configconfig {
  278.     struct Config *config;
  279.     struct dopusfiletype *firsttype;
  280.     struct DOpusRemember *typekey;
  281.     struct dopusgadgetbanks *firstbank;
  282.     int changed;
  283.     char configname[256];
  284.     struct Window *Window;
  285.     struct Screen *Screen;
  286.     struct dopushotkey *firsthotkey;
  287. };
  288.  
  289. struct ConfigStuff {
  290.     struct Config *config;
  291.     struct DOpusRemember *typekey;
  292.     struct dopusfiletype *firsttype;
  293.     struct dopusgadgetbanks *firstbank,*curbank;
  294.     struct dopushotkey *firsthotkey;
  295. };
  296.  
  297. struct DirectoryWindow {
  298.     struct DirectoryWindow *next,*last;
  299.     int number,type;
  300.     struct Directory *firstentry;
  301.     struct Directory *firstfile;
  302.     struct Directory *firstdir;
  303.     char directory[256];
  304.     char diskname[32];
  305.     int total;
  306.     int filetot,dirtot,bytestot;
  307.     int filesel,dirsel,bytessel;
  308.     int offset,hoffset;
  309.     int oldoff,oldhoff;
  310.     int hlen;
  311.     int disktot,diskfree,diskblock;
  312.     char custhandler[32];
  313.     char realdevice[32];
  314.     char flags;
  315.     struct DateStamp dirstamp;
  316.     char volumename[32];
  317.     UWORD last_owner;
  318.     UWORD last_group;
  319.     char owner_name[32];
  320.     char group_name[32];
  321. };
  322.  
  323. #define DWF_ABORTED  1
  324. #define DWF_READONLY 2
  325.  
  326. struct RLEinfo {
  327.     unsigned char *sourceptr;
  328.     UBYTE **destplanes;
  329.     USHORT imagebpr,imageheight,imagedepth;
  330.     USHORT destbpr,destheight,destdepth;
  331.     char masking,compression;
  332.     int offset;
  333. };
  334.  
  335. struct args {
  336.     char argstring[256];
  337.     struct args *next;
  338. };
  339.  
  340. struct function_data {
  341.     struct args *arg_first,*arg_current,*arg_use;
  342.     struct DOpusRemember *arg_memkey;
  343.     struct recpath *reload_first,*reload_current,*recursive_path;
  344.     struct DOpusRemember *reload_memkey;
  345.     struct Directory *entry_current,*entry_first,entry_external;
  346.     int output_file,rereadsource,rereaddest;
  347.     int fileargpos,external_flag,activewin,inactivewin;
  348.     int function_count;
  349.     char scriptname[80],tempfile[80];
  350.     char source_path[256],dest_path[256];
  351.     char last_file[256];
  352.     struct DOpusFileReq file_request;
  353. };
  354.  
  355. struct complete_entry {
  356.     struct complete_entry *next;
  357.     struct complete_entry *last;
  358.     char name[32];
  359. };
  360.  
  361. struct path_complete {
  362.     char match[32];
  363.     char path[256];
  364.     struct complete_entry *firstentry;
  365.     struct complete_entry *currententry;
  366.     struct DOpusRemember *memory;
  367. };
  368.  
  369. struct RememberData {
  370.     char copyflags;
  371.     char deleteflags;
  372.     char errorflags;
  373.     char displaypos[2][16];
  374.     char generalflags;
  375.     char iconflags;
  376.     char existflags;
  377.     char sortflags;
  378.     char dynamicflags;
  379.     char outputcmd[80];
  380.     char output[80];
  381.     char scrdepth;
  382.     char screenflags;
  383.     int screenmode;
  384.     int scrw;
  385.     int scrh;
  386.     char dirflags;
  387.     char defaulttool[80];
  388.     char showdelay;
  389.     char viewbits;
  390.     char fadetime;
  391.     char hiddenbit;
  392.     char showpat[40];
  393.     char hidepat[40];
  394.     char icontype;
  395.     char scrclktype;
  396.     char showfree;
  397.     char fontsizes[NUMFONTS];
  398.     char fontbufs[NUMFONTS][40];
  399.     char dateformat;
  400.     int gadgetrows;
  401.     char displaylength[2][16];
  402.     char windowdelta;
  403.     char sortmethod[2];
  404.     char separatemethod[2];
  405.     short wbwinx,wbwiny;
  406.     short scr_winw,scr_winh;
  407.     char pubscreen_name[80];
  408.     char portname[30];
  409. };
  410.  
  411. struct ColourTable {
  412.     ULONG red;
  413.     ULONG green;
  414.     ULONG blue;
  415.     char pen;
  416.     char alloc;
  417. };
  418.  
  419. #include "dopusmessage.h"
  420.  
  421. #endif
  422.